const { Sophomore } = require('../model/index')

/**
 * 用户查询大二学生信息
 */
function getSophomore (req, res) {
  Sophomore
  .find()
  .then((data) => {
    // console.log(data)
    res.send({
      code: 0,
      mas: '大二学生信息查询成功',
      data
    })
  })
  .catch(() => {
    res.send({
      code: -1,
      mas: '大二学生信息查询失败'
    })
  })
}

/**
 * 用户新增大二学生信息
 */
function addSophomore(req, res) {
  Sophomore.findOne({
    name: req.body.name,
    sex: req.body.sex,
    age: req.body.age,
    birthday: req.body.birthday
  })
    .then((data) => {
      // console.log(data)
      if (data) {
        res.send({
          code: -1,
          msg: '数据库已经存在该学生信息'
        })
      } else {
        let add = new Sophomore({
          name: req.body.name,
          sex: req.body.sex,
          age: req.body.age,
          birthday: req.body.birthday,
        })
        add.save()
          .then(() => {
          console.log(`学生 ${req.body.name} 信息新增成功`)
          res.send({
            code: 0,
            msg: '学生信息新增成功'
          })
        })
          .catch(() => {
            console.log(`学生 ${req.body.name} 信息新增失败`)
            res.send({
              code: -1,
              msg: '学生信息新增失败'
            })
          })
      }
    })
    .catch(() => {
      res.send({
        code: -1,
        msg: '访问数据库时出现错误，请联系数据库管理员'
      })
    })
}

/**
 * 用户更新大二学生信息
 */
function upSophomore (req, res) {
  Sophomore
  .findOne({_id: req.body._id})
  .then((data) => {
    if (data) {
      Sophomore
      .updateOne({_id: req.body._id}, {
        name: req.body.name,
        sex: req.body.sex,
        age: req.body.age,
        birthday: req.body.birthday,
      })
      .then(() => {
        console.log(`学生 ${req.body.name} 信息更新成功`)
        res.send({
          code: 0,
          msg: '学生信息修改成功'
        })
      })
      .catch(() => {
        console.log(`学生 ${req.body.name} 信息更新失败`)
        res.send({
          code: -1,
          msg: '学生信息修改失败'
        })
      })
    }
  })
  .catch((err) => {
    // console.log(err)
    res.send({
      code: -1,
      msg: '数据库中没有该学生信息，若要继续此操作，请联系数据库管理员'
    })
  })
}

/**
 * 用户删除大二学生信息
 */
function delSophomore (req, res) {
  Sophomore
  .findOne({_id: req.body._id})
  .then((data) => {
    if (data) {
      Sophomore
      .deleteOne({_id: req.body._id})
      .then(() => {
        console.log(`学生 ${req.body.name} 信息删除成功`)
        res.send({
          code: 0,
          msg: '学生信息删除成功'
        })
      })
      .catch(() => {
        console.log(`学生 ${req.body.name} 信息删除失败`)
        res.send({
          code: -1,
          msg: '学生信息删除失败'
        })
      }) 
    }
  })
  .catch(() => {
    res.send({
      code: -1,
      msg: '数据库中没有该学生信息，若要继续此操作，请联系数据库管理员'
    })
  })
}

module.exports = {
  getSophomore,
  addSophomore,
  upSophomore,
  delSophomore
}